1. Field of the Invention
This invention relates to computer-implemented methods of managing large amounts of interrelated and heterogeneous data. In particular, the present invention relates to hierarchical data structures and to methods and computer systems for organizing and managing and using such hierarchical data structures.
2. Description of the Related Art
Large projects, undertakings and organizations typically necessitate a correspondingly large information infrastructure. This information infrastructure may include a large amount of hierarchically related data. For example, the construction or repair of complicated machinery, complex civil engineering projects and the large corporations often use separate hierarchical data structures to represent scheduling, the organization of human resources, job costing and the like.
Scheduling software, for example, may store job-scheduling information in a tree-like structure. The nodes of the tree structure may be related to one another, in that lower-level tasks typically must be completed before higher-level jobs can be started or completed. A delay in a lower-level task may push forward the completion date of the higher-level job, for example. Similarly, separate accounting software applications may track item and job costs in one or more hierarchical data structures with which the cost of manufacturing, modifying or storing items, for example, is tracked across the manufacturing facility or work flow. Labor costs may be tracked in similar separate structures, as may be other types of inter-related data.
Existing hierarchical data representations and the methods of managing such data representations suffer from a number of disadvantages that become increasingly apparent as the size and complexity of such data structures increases. In the case of scheduling software, for example, when a single job or operation within the hierarchy is modified, delayed or canceled, the estimated start and completion dates of all subsequent operations must typically be serially re-computed before, for example, the final completion date of the project can be made available. Similarly, should the cost of any individual sub-assembly of a larger manufactured item change, the cost of the entire item must be re-calculated by traversing the entire hierarchical structure and re-computing all costs in the structure to account for the changed cost of the sub-assembly. As hierarchical structures may include thousands of nodes, this organization and approach is believed to be both time consuming and a less than optimal use of computing resources.
Moreover, large organizations typically rely on a plurality of separate hierarchical structures to represent and manage different facets of a same high level undertaking, including, for example, costing information, scheduling information, work flow, assembly and/or repair of complex machinery and the like. Separate hierarchical structures, therefore, have typically been required for each separate data type. The activities such separate structures represent are, however, related to one another in the real world. Indeed, the accounting department may need to interrelate scheduling, costing, resources and labor costs, to insure that sufficient funds are available at key points in time to meet staged deliverables, payroll or accounts payable for example. However, no single conventional hierarchical structure, method or system for managing same, it is believed, has had the ability of representing heterogeneous but related data structures in a single hierarchy.
What is needed, therefore, are novel forms of data organizations and methods of managing related information that allow for a more efficient use of computing time and resources in maintaining large hierarchical data structures. Also needed are means and methods that allow heterogeneous but related data structures to be represented by a single hierarchical structure. For example, there has been a long felt need for data structures and data management methods that would allow heterogeneous data and related structures such as, for example, costing and scheduling information, to be represented by a single hierarchical data structure that may be used by diverse applications. Preferably, such data structures and data management methods would permit users to flexibly modify, duplicate, mirror or delete portions of the hierarchical structure without expending unacceptable bandwidth, computing time or resources.
It is an object of the present invention, therefore, to allow for a more efficient use of computing time and resources in maintaining large hierarchical data structures. It is a further object of the invention to allow heterogeneous and related data structures to be represented in a single hierarchical structure. It is a still further object of the present invention to allow, for example, costing and scheduling information to co-exist within a single hierarchical data structure, and to allow more flexible methods of modifying, duplicating mirroring or deleting portions of the hierarchical structure.
In accordance with the above-described objects and those that will be mentioned and will become apparent below, a computer-implemented method of managing hierarchically related and heterogeneous data structures, according to an embodiment of the present invention, comprises the steps of separating the data structures from hierarchical information interrelating the data structures and representing and storing the hierarchical information as a nodal tree structure. The nodal tree structure includes a first node and a plurality of second nodes, each node being in a parent-child relationship with at least one other node. The data structures are stored separately from the nodal tree structure and each node references one of the data structures. As all dependency relationships between the data structures are stored in the nodal tree structure, the same tree structure may represent the dependency relationships between data structures of different types.